import axios from 'axios'
import router from '../router'
import { ElMessage } from 'element-plus'
import storage from "@/utils/storage";

export function request(config) {
    const instance = axios.create({
        baseURL: '/api',
        timeout: 5000
    })

    //请求拦截
    instance.interceptors.request.use(config => {
        //如果有一个接口需要认证才可以访问，就在这统一设置(token)
        const token = storage.getItem('token');
        if (token) {
            config.headers.token = token
        }
        //直接放行
        return config;
    }, err => {
        //一般不处理
    })

    //响应拦截
    instance.interceptors.response.use(res => {
        const status = res.data.status;
        if (status === 0) {
            ElMessage.warning(res.data.message)
            return;
        }
        return res.data ? res.data : res
    }, err => {
        //如果有需要授权才可以访问的接口，统一去login授权
        if (err.response && err.response.status == '401') {//未授权状态码
            ElMessage.warning('请先登录')
            router.push({ path: '/login' })
        }
        //如果有错误，这里面会去处理，显示错误信息
        console.log(`err.response: ${JSON.stringify(err.response)}`)
        // ElMessage.error(err.response.data.error)
    })

    return instance(config)
}